#ifndef __LIST_FUNC_H
#define __LIST_FUNC_H

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

#include "kernel_list.h"

typedef char *ElemType;

// 大结构体（数据域和指针域（小结构体））
typedef struct ElemNode
{
    ElemType data;         // 用户数据
    struct list_head list; // 标准节点，小结构体（只有指针域）
} ElemNode;

ElemNode *newElemNode(ElemType val);
ElemNode *headNode();
void traverse(ElemNode *head);
void insert_tail(ElemNode *head, ElemType val);
void insert_head(ElemNode *head, ElemType val);
void del_node(ElemNode *head, ElemType deldata);
int search_data(ElemNode *head, ElemType data);
int search_account(ElemNode *head, ElemType data);
void destroy_allToList(ElemNode *head);

#endif